<?php
	/* clase que encapsula categoria  */

	class Categoria{
		//PROPIEDADES
		private $id_categoria;
		private $nombre_categoria;
		private $url_amigable;
		//private $imagen;
		
		//CONSTRUCTOR
		public function __construct( $id_categoria, $nombre_categoria ){
			$this->id_categoria = $id_categoria;
			$this->nombre_categoria = $nombre_categoria;
			$this->url_amigable = urlfriend( $nombre_categoria );

		}
		
		//ACCESORES
		public function getIdCategoria(){ return $this->id_categoria; }
		public function setIdCategoria( $id_categoria ){ $this->id_categoria = $id_categoria; }
		
		public function getNombreCategoria(){ return $this->nombre_categoria; }
		public function setNombreCategoria( $nombre_categoria ){ $this->nombre_categoria = $nombre_categoria; }
		
		public function getUrlAmigable(){ return $this->url_amigable; }
		public function setUrlAmigable( $url_amigable ){ $this->url_amigable = $url_amigable; }
		
		//public function getImagen(){ return $this->imagen; }
		//public function setImagen( $imagen ){ $this->imagen = $imagen; }
		
		//METODOS
		public function toString(){ return "Id_categoria = ".$this->id_categoria.", nombre_categoria = ".$this->nombre_categoria; }
		
		/*	existCategory()
			description: Recibe un string y comprueba si existe alguna Categoria con ese nombre en la BBDD
			parameters: $category_search - categoria a buscar
			return: true si existe, false si no existe
		*/
		public static function existCategory( $category_search ){
			//$category = strtolower( $category_search );//Pasamos la categoria a minúsculas
			$category = urlfriend( $category_search );
			//echo "CATEGORIA: [" . $category ."]";
			try{
				$connection = new Connection();//Creamos una variable para conectarnos a la BBDD
				$connection->conectar();//Nos conectamos a la BBDD
				
				//prepare statament
				$consulta = 'SELECT * FROM categorias WHERE url_amigable =?'; 
				if ($sentencia = $connection->getConexion()->prepare($consulta)) {
					//asignamos la variable $category al ? ,  s=string, i=integer,d=double 
					$sentencia->bind_param("s", $category);
					/* ejecutar la consulta */
					$sentencia->execute();
					
					/* almacenar el resultado */
					$sentencia->store_result();
					//$sentencia->num_rows devuelve el numero de registros que ha devuelto la sentencia
					$num = $sentencia->num_rows;
					
					/* cerrar sentencia */
					$sentencia->close();
					/* cerrar la conexión */
					$connection->desconectar();
					
					if( $num==0){ return false; }
					else if( $num==1 ){ return true; }
				}
			} catch( Exception $e ){
				return false;
			}
		}
				
		/*
		 * getCategorias
		 * Devuelve un array con Objetos categoria de la base de datos
		 */
		public static function getCategorias(){
			try{
				$connection = new Connection();//Creamos una variable para conectarnos a la BBDD
				$connection->conectar();//Nos conectamos a la BBDD
				//Array a preparar
				$categorias=array();
				$consulta = 'SELECT * FROM categorias'; 
				//obtenemos query
				if ($sentencia = $connection->getConexion()->query($consulta)) {
					/* obtener array asociativo */
					while ($row = $sentencia->fetch_assoc()) {
						$categorias[]=new Categoria($row['id_categoria'],$row['nombre_categoria']);
					}
					/* cerrar sentencia */
					$sentencia->close();
					/* cerrar la conexión */
					$connection->desconectar();
								//echo count($categorias);
					return $categorias;
					}
			  } catch( Exception $e ){
				return null;
			 }
			 
		}
                
                /* GetCategoryId()
                 * Devuelve la Id del objeto categoria que coincida con la url amigable
                 * @param : String, url amigable
                 */
                
                public static function getCategoryId( $url_amigable ) {
                    try{
				$connection = new Connection();//Creamos una variable para conectarnos a la BBDD
				$connection->conectar();//Nos conectamos a la BBDD
				
				//prepare statament
				$consulta = 'SELECT id_categoria FROM categorias WHERE url_amigable =?'; 
				if ($sentencia = $connection->getConexion()->prepare($consulta)) {
					//asignamos la variable $category al ? ,  s=string, i=integer,d=double 
					$sentencia->bind_param( "s", $url_amigable );
					/* ejecutar la consulta */
					$sentencia->execute();
					/* vincular variables a la sentencia preparada */
                                        $sentencia->bind_result($resultado);
                                        /* obtener valores */
                                        while ($sentencia->fetch()) {
                                            $id = $resultado;
                                        }
					/* cerrar sentencia */
					$sentencia->close();
					/* cerrar la conexión */
					$connection->desconectar();

					return $id;
				}
			} catch( Exception $e ){
				return false;
			}
				
                    
                }
    
		
		/*	insertCategory()
			description: Inserta una nueva Categoria a la BBDD
			parameters: $category - categoria a introducir
			return:
		*///pasar a objeto y prepare
		public function insertCategory( $category ){
			$category = strtolower( $category_search );//Pasamos la categoria a minúsculas
			try{
				$connection = new Connection();//Creamos una variable para conectarnos a la BBDD
				$connection->conectar();//Nos conectamos a la BBDD
				$registros = mysql_query( "" , $conexion->getConexion());
				$connection->desconectar();//Nos esconectamos de la BBDD
			} catch( Exception $e ){
				return "Problemas en ''";
			}
		} 
                
	}
?>
